package com.lhc.bean.autowiredconstruct;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * @author LuHuanCheng
 * 类说明： bean实例化  1.factory-method   2.有参构造函数并且带有Autowired注解    3.有参构造函数并且没有Autowired注解   4.无参构造函数
 * <p>
 * <p>
 * 会进入这个方法的源码在AbstractAutowireCapableBeanFactory类的determineConstructorsFromBeanPostProcessors方法
 */
@Component
public class AutowiredConstructorBean {

    //有参构造函数，并且方法上有Autowired注解
//    @Autowired(required = true)
//    public AutowiredConstructorBean(CQ cq, SC sc) {
//        System.out.println("有参构造函数参数1实例化：" + cq);
//        System.out.println("有参构造函数参数2实例化：" + sc);
//    }

    @Autowired(required = false)
    public AutowiredConstructorBean(CQ cq) {
        System.out.println("有参构造函数参数1实例化：" + cq);
    }


    //有参构造函数，并且方法上有Autowired注解
    public AutowiredConstructorBean(CQ cq, SC sc) {
        System.out.println("有参构造函数参数1实例化：" + cq);
        System.out.println("有参构造函数参数2实例化：" + sc);
    }


}